/* eslint-disable no-unused-vars */
const express = require('express');
const cors = require('cors');
const {notFound, error} = require("./utils/resSender");

//定义公共属性
const app = express();
const port = 3636;

const spamRouter = require('./router/spam');// 引入路由模块

// 中间件：解析 JSON 请求体
app.use(express.json());

app.use(cors());//允许所有源（不推荐用于生产环境）

// 静态文件服务（托管 public 文件夹） 暂无该需求
// app.use(express.static('public'));

// 挂载路由
app.use('/spam', spamRouter);

// 路由流转到 4xx处理中间件 （仅处理未匹配路由的请求）
app.use((req, res) => {
    notFound(res, `资源未找到：${req.originalUrl}`); // 调用 404 响应函数
});

// 路由流转到 错误处理中间件
app.use((err, req, res, _next) => {
    console.error('服务器错误:', err.stack); // 记录完整错误堆栈
    const statusCode = err.statusCode || 500; // 优先使用自定义状态码
    const message = err.message || '服务器内部错误'; // 使用错误消息或默认值

    // 根据状态码返回对应的错误响应（如 400/401/500 等）
    error(res, message, statusCode);
});

// 启动服务器
const server = app.listen(port, () => {
    console.log(`服务器运行在 http://localhost:${port}`);
});